package dao

import (
	"time"
)

// 这是 LiCategory 的全局公开dao对象
var LiCategoryDao = liCategoryDao{}

// 这是 li_category表 的实体类
type LiCategory struct {
	Id             int       `json:"id" form:"id" v:"id"`                                             // ID
	CreateBy       string    `json:"create_by" form:"create_by" v:"create_by"`                        // 创建者
	CreateTime     time.Time `json:"create_time" form:"create_time" v:"create_time"`                  // 创建时间
	DeleteFlag     bool      `json:"delete_flag" form:"delete_flag" v:"delete_flag" gm:"delete_flag"` // 删除标志 true/false 删除/未删除
	UpdateBy       string    `json:"update_by" form:"update_by" v:"update_by"`                        // 更新者
	UpdateTime     time.Time `json:"update_time" form:"update_time" v:"update_time"`                  // 更新时间
	CommissionRate float64   `json:"commission_rate" form:"commission_rate" v:"commission_rate"`      // 佣金比例
	Image          string    `json:"image" form:"image" v:"image"`                                    // 分类图标
	Level          int       `json:"level" form:"level" v:"level"`                                    // 层级
	Name           string    `json:"name" form:"name" v:"name"`                                       // 分类名称
	ParentId       string    `json:"parent_id" form:"parent_id" v:"parent_id"`                        // 父ID
	SortOrder      int       `json:"sort_order" form:"sort_order" v:"sort_order"`                     // 排序值
	SupportChannel bool      `json:"support_channel" form:"support_channel" v:"support_channel"`      // 是否支持频道
}

// 注意:这是 LiCategory 的私有dao对象
type liCategoryDao struct {
	Insert          func(arg LiCategory) int           //插入一条记录
	Update          func(arg LiCategory) int           //更新一条记录
	Delete          func(arg LiCategory) int           //删除一条记录
	Select          func(arg LiCategory) LiCategory    //获取一条记录
	ListAllChildren func(parentId string) []LiCategory `arg:"parent_id"` //查询所有的分类，父子关系
}
